package cn.tannn.cat.file.sdk.api;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;

/**
 * 文件上传
 *
 * @author <a href="https://tannn.cn/">tan</a>
 * @date 2024/3/19 14:54
 */
@Schema(description = "文件管理 - 文件上传基础数据")
@Getter
@Setter
@ToString
public class UploadFileBase implements Serializable {

    /**
     * 文件流
     */
    @Schema(description = "文件流")
    MultipartFile file;

    /**
     * 业务自定义存储文件名,为空则使用系统默认规则
     * ps: minio 中文可能会有点的问题
     */
    @Schema(description = "业务自定义存储文件名,为空则使用系统默认规则( minio 中文可能会有点的问题)")
    String fileName;

    /**
     * 移除文件名中的后缀
     * @param fileName 原始文件名
     */
    public void setFileName(String fileName) {
        if (fileName == null || fileName.isBlank()) {
            this.fileName = fileName;
        } else {
            int lastDotIndex = fileName.lastIndexOf('.');
            this.fileName = (lastDotIndex > 0) ? fileName.substring(0, lastDotIndex) : fileName;
        }
    }

}
